Engineering Large Parallel Functional Programs
نویسندگان
چکیده
The design and implementation of useful programming languages , whether sequential or parallel, should be driven by large, realistic applications. In constructing several medium-and large-scale programs in Glasgow Parallel Haskell, GpH, a parallel extension of Haskell, the group at Glasgow has investigated several important engineering issues: { Real Application Parallelism. The programs achieve good wall-clock speedups and acceptable scale-up on both a shared-memory and a distributed memory machine. The programs typify a number of application areas and use a number of diierent parallel paradigms, e.g. pipelining or divide-and-conquer, often combining several paradigms in a single program. { Language Issues. Although the largely implicit parallelism in GpH is a satisfactory programming model in general the base constructs for introducing and controlling parallelism tend to obfuscate the semantics of large programs. As a result we developed evaluation strategies , a more abstract, and systematic mechanism for introducing and controlling parallelism. { Engineering Environment. The development and performance tuning of these programs emphasised the importance of an integrated engineering environment. In the process we have reened components of this environment like the simulator, the runtime system, and the prooling tools.
منابع مشابه
Algorithm + Strategy = Parallelism 1 Writing Parallel Programs
The process of writing large parallel programs is complicated by the need to specify both the parallel behaviour of the program and the algorithm that is to be used to compute its result. This paper introduces evaluation strategies, lazy higher-order functions that control the parallel evaluation of non-strict functional languages. Using evaluation strategies, it is possible to achieve a clean ...
متن کاملParallelizing MCP-Haskell for Evaluating Haskell# Parallel Programming Environment
In this paper, we present the parallelization of a sequential functional implementation of a Monte Carlo Transport Problem, called MCPHaskell[Hammes et al., 1995], using Haskell#. This experiment gave us important feedback for evaluating Haskell# features, helping us to answer some questions, like how expressive is Haskell# for representing known parallel computational patterns, how easy it is ...
متن کاملEngineering parallel symbolic programs in GPH
We investigate the claim that functional languages ooer low-cost parallelism in the context of symbolic programs on modest parallel architectures. We base our investigation on several large programs that we have written or parallelised in Glasgow Parallel Haskell (GpH). The programs cover a range of application areas, use several parallel programming paradigms, and are measured on two very diie...
متن کاملAlgorithm + Strategy = Parallelism
The process of writing large parallel programs is complicated by the need to specify both the parallel behaviour of the program and the algorithm that is to be used to compute its result This paper introduces evaluation strategies lazy higher order functions that control the parallel evaluation of non strict functional languages Using evaluation strategies it is possible to achieve a clean sepa...
متن کاملTowards a Characterisation of Parallel Functional Applications
To devise novel parallelism control mechanisms further insights into dynamic behaviour of parallel functional programs and run-time systems (RTS) are needed. We use profiling to characterise eight applications on a multi-core and on a multi-core cluster. We focus on thread granularity, memory management and communication. Our results confirm that parallel Haskell implementations cope well with ...
متن کامل